# -*- coding: utf-8 -*-

from langchain_core.prompts import PromptTemplate

from llm import qianwen_llm

llm = qianwen_llm()

context = '''
转子电流不平衡故障-4、故障处理前准备：-</topic>\n4、故障处理前准备：\n（1）备品备件选择：针对上述故障原因，检修人员应在处理故障前携带碳刷等备品备件\n（2）工器具选择：在开始处理故障前，检修人员应携带调试电脑、调试卡、光纤、万用表、\n76件工具套装、开口扳手、内六花扳手、小一字螺丝刀、\n（3）人员PPE穿戴要求：作业人员应穿戴防电弧服。\n故障处理步骤：\n（1）断开变频器控制电源 F11和F12空开，确认MCB处于分闸位置，等待 15分钟，\n（2）打开变频器柜门，观察模块及保险等有无放电迹象
转子电流不平衡故障-4、故障处理前准备：-</topic>\n4、故障处理前准备：\n（1）备品备件选择：针对上述故障原因，检修人员应在处理故障前携带碳刷等备品备件\n（2）工器具选择：在开始处理故障前，检修人员应携带调试电脑、调试卡、光纤、万用表、\n76件工具套装、开口扳手、内六花扳手、小一字螺丝刀、\n（3）人员PPE穿戴要求：作业人员应穿戴防电弧服。\n故障处理步骤：\n（1）断开变频器控制电源 F11和F12空开，确认MCB处于分闸位置，等待 15分钟，\n（2）打开变频器柜门，观察模块及保险等有无放电迹象
转子电流不平衡故障-4、故障处理前准备：-</topic>\n（2）打开变频器柜门，观察模块及保险等有无放电迹象\n（3）登塔检查发电机轴承是否存在异响，运行时是否振动过大\n（4）检查集电环室，集电环表面是否存在麻点、打火现象；\n（5）检查碳刷是否可靠固定在刷握中，长度是否正常；\n（6）检查碳刷卡簧压力是否正常\n（7）检查碳刷刷辫绝缘外皮是否正常，相间由于短路现象\n（8）检查接地碳刷是否正常\n（9）拆卸模块检查模块内部是否存在问题，包括电流互感器， IGBT和AINT等，建议整体
'''
template = '''
<指令>你是一名文本分析师，你知道如何整理信息并将其精炼成一段能够解决用户问题的段落，你需要分析用户的问题和从知识库中检索出来的已知信息，以及你和用户进行问答交互产生的历史信息，
请你根据这些信息进行提取并有条理且精炼的回答问题，回答请优先参考历史信息，越近的历史信息优先级别越高。
请注意，你的回答应该清晰、准确，并提供足够的细节来支持你的观点。
请思考一会儿，分点分步骤去做思考，但不需要输出思考的过程，直接输出思考完毕的回答。
如果无法从中得到答案，请说 “无法搜索到能回答问题的内容”。 </指令>
<问题>{question}</问题>
<已知信息>{context}</已知信息>
<历史信息>{history}</历史信息>
'''

question = '2月份光伏发电的年度完成是多少'


template = '''
<指令>=你是一个意图判断的路由器，结合用户询问的问题和历史对话信息，判断用户这次的问题是不是对历史回答的进一步提问。如果是，回答是，如果不是，回答不是。</指令>
<问题>{question}</问题>
<历史对话>{history}</历史对话>
'''
question = '上述故障处理中的故障前准备如何进行'
question='转子侧电流不平衡故障的逻辑是什么'

history = '''
问题：转子侧电流不平衡的处理步骤是什么?
回答：
处理转子侧电流不平衡问题，主要包括以下步骤：

故障前准备：

备品备件：携带碳刷等备品备件，以备更换。
工器具：携带调试电脑、调试卡、光纤、万用表、76件工具套装、开口扳手、内六花扳手、小一字螺丝刀等工具。
人员PPE：作业人员应穿戴防电弧服。
故障处理步骤：

断开变频器控制电源：分断F11和F12空开，确保MCB处于分闸状态，等待15分钟，以确保安全。
检查变频器柜：打开柜门，观察模块及保险等有无放电迹象。
登塔检查：
发电机轴承：检查轴承是否存在异响，运行时的振动情况。
集电环：检查集电环是否存在麻点、打火现象；碳刷长度是否正常，卡簧压力是否足够。
碳刷检查：
确保碳刷固定在刷握中，并检查碳刷长度和卡簧压力。
检查碳刷刷辫绝缘外皮是否正常，以及相间是否存在短路现象。
接地碳刷检查：确保接地碳刷正常。
模块检查：拆卸模块，检查内部是否存在包括电流互感器、IGBT和AINT等在内的问题。建议更换模块进行测试。
这些步骤旨在全面诊断和解决转子侧电流不平衡的问题，确保发电机和变频器的稳定运行。

'''

# format = prompt_template.format(context=context, question=question)
format = template.format(history = history, question=question)

res = llm.invoke(format)
print(res.content)
